<!-- 培训申请详情页 -->
<template>
  <div>
    <a-card class="info" title="培训申请" :bodyStyle="{ padding: '20px' }">
      <template slot="extra">
        <!-- <template v-if="model.bpmStatus==='1'">
          <a-button
                  class="ruleButton"
                  :ghost="true"
                  type="primary"
                  icon="edit"
                  @click="handleEdit(model)"
                  :disabled="isDisabledAuth('erpPurchaseApplyInvitation:edit')"
          />
          <a-divider type="vertical"/>
          <a-button type="primary" size="small" @click="startProcess(model)" :disabled="isDisabledAuth('erpPurchaseApplyInvitation:startProcess')">发起流程</a-button>
        </template>
<template v-if="showBtn(model.bpmStatus)&& doCount > 0">
          <span v-if="model.taskUrge">
            <a-icon title="催办提醒" theme="twoTone" twoToneColor="#eb2f96"
                    @click="taskNotifyMe(flowCode,model.id)" type="notification"/>
            <a-divider type="vertical"/>
          </span>

          <a-button type="primary" size="small" @click="handleProcess(model)">办理</a-button>
          <a-divider type="vertical"/>
        </template>
<template v-if="myCount > 0 && showBtn(model.bpmStatus)">
          <a-button type="primary" size="small" @click="taskNotify(flowCode,model.id)">催办</a-button>
          <a-divider type="vertical"/>
          <a-popconfirm title="确定要作废吗?" @confirm="() => invalidProcess(model)">
            <a-button type="primary" size="small" :disabled="isDisabledAuth('erpPurchaseApplyInvitation:invalidProcess')">
              作废流程
            </a-button>
          </a-popconfirm>
          <a-divider type="vertical"/>
        </template> -->
        <template v-if="model.bpmStatus !== '1'">
          <a-button
            type="primary"
            size="small"
            @click="handleTrack(model)"
            :disabled="isDisabledAuth('erpPurchaseApplyInvitation:viewTrack')">审批进度</a-button>
        </template>
      </template>
      <!-- <biz-his-task-module ref="bizHisTask" :formData="formData"> -->
      <a-row type="flex" justify="center">
        <a-col :span="24">
          <ErpHrTrainingApplyForm ref="realForm" :disabled="true" normal></ErpHrTrainingApplyForm>
          <!-- 流程历史跟踪 -->
          <CommonFirstFlowList
            v-if="model.bpmStatus !== '1' && model.purchaseBill && model.purchaseBill.substring(0, 2) == 'ZF'"
            :formData="OriginalFormData"></CommonFirstFlowList>
          <common-flow-list v-if="model.bpmStatus !== '1'" :formData="formData"></common-flow-list>
        </a-col>
      </a-row>
      <!-- </biz-his-task-module> -->
      <ErpHrTrainingApplyModal ref="modalForm" @ok="modalFormOk"></ErpHrTrainingApplyModal>
      <bpm-biz-task-deal-modal
        ref="taskDealModal"
        :path="path"
        :formData="formData"
        @ok="handleOk"></bpm-biz-task-deal-modal>
      <bpm-process-track-modal ref="bpmProcessTrackModal"></bpm-process-track-modal>
      <biz-task-notify-modal ref="taskNotifyModal"></biz-task-notify-modal>
      <biz-task-notify-me-modal ref="taskNotifyMeModal"></biz-task-notify-me-modal>
    </a-card>

    <div style="text-align: center;margin-top: 15px;">
      <a-button @click="onPrint" type="primary">打印</a-button>
    </div>
    <ErpHrTrainingApplyFormPrint
      class="print_style"
      id="printContent"
      :OriginalFormData="OriginalFormData"
      :formData="model"
      :formDataHistory="formData"
      v-show="isPrint"></ErpHrTrainingApplyFormPrint>
  </div>
</template>

<script>

import { getAction } from '@/api/manage'
import { JeecgBpmListMixin } from '@/mixins/JeecgBpmListMixin'
import BizHisTaskModule from '@/views/modules/bpmbiz/common/BizHisTaskModule.vue';
import BpmBizTaskDealModal from '@/views/modules/bpmbiz/common/BpmBizTaskDealModal.vue';
import BpmProcessTrackModal from '@/views/modules/bpmbiz/common/BpmProcessTrackModal.vue';
import BizTaskNotifyModal from '@/views/modules/bpmbiz/common/BizTaskNotifyModal.vue';
import BizTaskNotifyMeModal from '@/views/modules/bpmbiz/common/BizTaskNotifyMeModal.vue';
import ErpHrTrainingApplyForm from './modules/ErpHrTrainingApplyForm'
import ErpHrTrainingApplyModal from './modules/ErpHrTrainingApplyModal'
import ErpHrTrainingApplyFormPrint from './modules/ErpHrTrainingApplyFormPrint' // 打印
import { DisabledAuthFilterMixin } from '@/mixins/DisabledAuthFilterMixin'
import CommonFlowList from '@/views/components/CommonFlowList.vue'; // 审批历史流程列表组件
import CommonFirstFlowList from '@/views/components/CommonFirstFlowList.vue'; // 审批历史流程列表组件
import Print from '@/utils/print/printarea.js';
export default {
  name: 'ErpPurchaseApplyInvitationDetail',
  mixins: [JeecgBpmListMixin, DisabledAuthFilterMixin],
  components: {
    ErpHrTrainingApplyForm,
    ErpHrTrainingApplyModal,
    BizHisTaskModule,
    BpmBizTaskDealModal,
    BpmProcessTrackModal,
    BizTaskNotifyModal,
    BizTaskNotifyMeModal,
    CommonFlowList,
    CommonFirstFlowList,
    ErpHrTrainingApplyFormPrint
  },
  data() {
    return {
      model: {},
      id: '',
      url: {
        queryById: '/api/erp/hr/training/erpHrTrainingApply/queryById',
        delete: '/api/erp/hr/training/erpHrTrainingApply/delete',
        bizCount: '/api/erp/hr/training/erpHrTrainingApply/bizCount'
      },
      confirmLoading: false,
      iconStyle: { 'font-size': '20px' },
      // 代码生成后需手动设置流程编码
      flowCode: 'dev_erp_hr_training_apply_001',
      formUrl: '/erp/hr/training/modules/ErpHrTrainingApplyForm',
      beanName: 'erpHrTrainingApplyServiceImpl',
      formUrlMobile: '/pages/synergy/ErpHrTrainingApplyList',
      OriginalFormData: {},
      isPrint: false
    }
  },
  created() {
  },
  watch: {
    $route(to, from) {
      this.loadData();
    }
  },
  mounted() {
  },
  methods: {
    // 点击打印
    onPrint() {
      this.isPrint = true
      var _this = this
      this.$nextTick(() => {
        let print = new Print({
          el: '#printContent',
          popTitle: '培训申请详情 · 禾美协同办公',
          endCallback() {
            _this.isPrint = false
          }
        })
      })
    },
    loadData() {
      const id = this.$route.params.id;
      getAction(this.url.queryById, { id }).then((res) => {
        if (res.success) {
          const model = res.result
          this.$refs.realForm.edit(model);
          this.model = model;
          // 查询催办
          let params1 = { flowCode: this.flowCode, dataId: id };// 查询条件
          getAction(this.url.checkNotify, params1).then((res2) => {
            if (res2.result) {
              this.model.taskUrge = true;
            }
          })
          // 查询流程
          let params = { flowCode: this.flowCode, dataId: this.model.id };// 查询条件
          this.viewTrack(params);
          // if (this.model.purchaseBill.substring(0, 2) == 'ZF') {
          //   let params2 = { flowCode: this.flowCode, dataId: this.model.purchaseBillId };// 查询条件
          //   this.viewOriginalTrack(params2)
          // }
        }
      })
      this.bizCountById(id);
    },
    viewOriginalTrack(params) {
      getAction(this.url.getBizHisProcessNodeInfo, params).then((res) => {
        if (res.success) {
          var data = {
            dataId: res.result.dataId,
            procInsId: res.result.procInsId,
            tableName: res.result.tableName,
            vars: res.result.records
          }
          this.OriginalFormData = data;
          // this.path = res.result.formUrl;
          // this.$refs.bizHisTask.getHisProcessTaskTransInfo(this.OriginalFormData);
        }
      })
    }
  }
}
</script>
<style lang="less" scoped>
@import '~@assets/less/common.less';

.info {
  /deep/ .ant-card-head-title {
    flex: none;
    margin-right: 20px;
  }

  /deep/ .ant-card-extra {
    flex: 1;
    float: left;
  }
}

.print_style {
  position: absolute;
  top: 0;
  z-index: -1111;
}
</style>
<style>
@import "../../../../utils/print.css";
</style>
